#include<iostream>
#include<signal.h>
#include<unistd.h>

// void Printf()
// {
//     sigset_t block,roblock;
//     sigemptyset(&block);
//     sigemptyset(&roblock);

//     sigprocmask(SIG_BLOCK,&block,&roblock);
//     std::cout << "block";
//     for(int i=31;i>0;i--)
//     {
//         if(sigismember(&roblock,i))
//         {
//             std::cout << 1;
//         }
//         else
//         {
//             std::cout << 0;
//         }
//     }
//     std::cout << std::endl;
// }

// void head(int sig)
// {
//     static int cun = 0;
//     cun++;
//     while(true)
//     {
//         std::cout << "sig:" << sig << "cun:" << cun <<  std::endl;
//         Printf();
//         sleep(1);
//         break;
//     }
//     //exit(0);
// }

// int main()
// {
//     struct sigaction ion1,ion2;
//     ion1.sa_handler = head;

//     sigaddset(&ion1.sa_mask,3);//屏蔽信号3~8
//     sigaddset(&ion1.sa_mask,4);
//     sigaddset(&ion1.sa_mask,5);
//     sigaddset(&ion1.sa_mask,6);
//     sigaddset(&ion1.sa_mask,7);
//     sigaddset(&ion1.sa_mask,8);

//     ::sigaction(2,&ion1,&ion2);

//     while(true)
//     {
//         Printf();
//         ::pause();
//     }
//     return 0;
// }
#include<pthread.h>

void* add(void* add)
{
    while(true)
    {
        std::cout << "我是一个新线程,pid:"<< getpid() << std::endl;
        sleep(1);
    }
    return nullptr;

}

int main()
{
    std::cout << "我是一个进程，pid:" << getpid() << std::endl;
    pthread_t pid;
    pthread_create(&pid,nullptr,&add,(void*)"add-1");
    while(true)
    {
        std::cout << "我是主线程" << getpid() << std::endl;
        sleep(1);
    }
    return 0;
}